<template>
	<div>
		<div class="h2">活动类型申请权限管理 -- {{ $route.query.Name }}</div>
		<div class="option"><a-button type="primary" class="btn" @click="addList">新增</a-button></div>
		<div>
			<el-table :data="data"
			 v-loading="loading" border :max-height="tableHeight" highlight-current-row style="width: 100%;">
			  <el-table-column type="index" label="序号" width="60"></el-table-column>
				<el-table-column prop="TypeName" label="类型" min-width="100"></el-table-column>
				<el-table-column prop="Value" label="部门/学生组织" min-width="100"></el-table-column>
				<el-table-column prop="ActivityLevelName" label="级别" min-width="100"></el-table-column>
				<el-table-column prop="ClubTypeName" label="学生组织类型" min-width="140"></el-table-column>
				<!-- <el-table-column prop="Score" label="参与者分值" width="120">
					<template slot-scope="scope">
						<a-tag color="green">{{ scope.row.Score?scope.row.Score:'暂无' }}</a-tag>
					</template>
				</el-table-column>
				<el-table-column prop="Score" label="观众分值" width="100">
					<template slot-scope="scope">
						<a-tag color="green">{{ scope.row.AudienceScore?scope.row.AudienceScore:'暂无' }}</a-tag>
					</template>
				</el-table-column>
				<el-table-column prop="Score" label="工作人员分值" width="140">
					<template slot-scope="scope">
						<a-tag color="green">{{ scope.row.WorkerScore?scope.row.WorkerScore:'暂无' }}</a-tag>
					</template>
				</el-table-column> -->
				<el-table-column prop="IsHour" label="按小时计算" min-width="100">
					<template slot-scope="scope">
						<a-tag :color="scope.row.IsHour?'orange':'red'">{{ scope.row.IsHour?'是':'否' }}</a-tag>
					</template>
				</el-table-column>
				<el-table-column label="操作" width="140">
					<template slot-scope="scope">
					<!-- 	<a-tooltip placement="top">
							<template slot="title">修改</template>
							<i title="修改" class="iconfont icon-editor1" style="color: #1890FF;" @click="modifyList(scope.row, 'modify')"></i>
						</a-tooltip> -->
						<a-tooltip placement="top">
							<template slot="title">删除</template>
							<i title="删除" class="iconfont icon-delete" style="color: red;" @click="deleteList(scope.row)"></i>
						</a-tooltip>
					</template>
				</el-table-column>
			</el-table>
		</div>
		<add :text="text" :LevelList="LevelList" :ClubTypeList="ClubTypeList" :ClubList="ClubList" :DepartCodeList="DepartCodeList" v-show="addIf" @closeFun="closeFun"></add>
	</div>
</template>

<script>
import add from './add';
import Func from '@/utils/func';
import { getActivityTypeApplyList,DeleteActivityTypeApply,GetActivityLevelListCommon,GetDepartList,GetClubTypeList } from '@/api/follow';
const data = [];
export default {
	components: {
		add
	},
	data() {
		return {
			data,
			form: this.$form.createForm(this, {
				name: 'advanced_search'
			}),
			pagination: {
				currentPage: 1,
				pageSize: this.global.pageSize,
				pageSizeOptions: this.global.pageSizeOptions, // 每页中显示的数据
				showTotal: total => `共有 ${total} 条数据` // 分页中显示总的数据
			},
			addIf: false,
			text: {},
			visible: false,
			confirmLoading: false,
			itemId: '',
			departmentList: [],
			worklist: [],
			loading: false,
			values: {},
			LevelList:[],
			ClubTypeList:[],
			DepartCodeList:[],
			ClubList:[],
			TypeList:this.global.ActivityTypeList,
			tableHeight: parseFloat(window.innerHeight - 160)
		};
	},
	computed: {},
	created() {
		this.getList()
		this.getOtherList()
	},
	mounted() {},
	methods: {
		async getOtherList(){
			let res = await GetActivityLevelListCommon()
			this.LevelList = res.data.data
			let res1 = await GetDepartList()
			this.DepartCodeList = res1.data.data
			let res2 = await GetClubTypeList()
			this.ClubTypeList = res2.data.data
			
		},
		handleSearch(e) {
			e.preventDefault();
			this.form.validateFields((error, values) => {
				this.pagination.currentPage = 1;
				this.values = values;
				this.getList();
			});
		},
		handleReset() {
			this.form.resetFields();
			this.values = {};
			this.getList();
		},
		handleSizeChange(val) {
			this.pagination.pageSize = val;
			this.getList();
		},
		handleCurrentChange(val) {
			this.pagination.currentPage = val;
			this.getList();
		},
		async getList() {
			this.loading = true;
			let data = {};
			if (this.values) {
				data = this.values;
			}
			data.activityTypeID = this.$route.query.activityTypeID
			let res = await getActivityTypeApplyList(data);
			this.loading = false;
			this.data = this.toTree(res.data.data)
		},
		toTree(data) {
			let result = [];
			let map = {};
			if (!Array.isArray(data)) {
				return [];
			}
			data.forEach(item => {
				map[item.ID] = item; 
			});
			data.forEach(item => {
				let parent = map[item.ParentID]; 
				if (parent) {
					(parent.children || (parent.children = [])).push(item);
				} else {
					result.push(item); 
				}
			});
			return result; 
		},
		addList() {
			this.text = {};
			this.addIf = !this.addIf;
		},
		modifyList(text) {
			text = Object.assign(text, { time: new Date() });
			this.addIf = !this.addIf;
			this.text = text;
		},
		deleteList(text) {
			let that = this
			this.$confirm({
				title: '提示',
				content: `您确定删除该类型吗？`,
				okText: '确认',
				cancelText: '取消',
				async onOk() {
					let data = {}
					data.id = text.ID
					let res = await DeleteActivityTypeApply(data);
					if(res.data.code==0){
						that.getList()
						that.$message.success(res.data.msg)
					}else{
						that.$message.error(res.data.msg)
					}
				}
			})
		},
		closeFun() {
			this.addIf = false;
			this.getList();
		}
	}
};
</script>

<style lang="less" scoped>
.home-form /deep/.ant-form-item {
	display: flex;
	margin-bottom: 10px !important;

	
}
.home-form /deep/.ant-form-item-label {
		width: 80px;
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
		text-align: right;
	}
	.home-form /deep/.ant-form-item-control-wrapper {
		flex: 1;
	}
/deep/.el-table th.is-leaf {
	background: #fafafa;
}
/deep/.el-table td,
/deep/.el-table th {
	padding: 5px;
}
.option {
	margin-top: 10px;
	margin-bottom: 20px;
	overflow: hidden;
}
.option .btn {
	height: 36px;
	line-height: 36px;
	padding: 0 10px;
	float: left;
	background: #1890ff;
	color: #fff;
	margin-right: 10px;
	border-radius: 3px;
	cursor: pointer;
	border: none;
}
.foot {
	text-align: center;
	margin-top: 100px;
}
.el-pagination {
	margin-top: 10px;
}
</style>
